In the context of computers and computer programs (e.g., applications) that are used in information technology, a database is an organized or structured collection of data (values). The data in the database may include data describing instances of database objects (e.g., tables, queries, reports, views and other objects) and may include schemas describing the types or structures of the database objects.
Large database systems (e.g., enterprise resource planning (“ERP”) systems and customer relationship management (“CRM”) systems) can include database objects that store and organize data, as well as database objects for accessing the data. For example, in some database systems a database object may include a table, an index, and a view, as well as a procedure for accessing one or more tables, a procedure importing data into one or more tables, or a procedure that manipulates the data in one or more tables. Pushing down data-intensive computations into the database layer minimizes data transfers between the database layer and an application layer and takes advantage of in-memory capabilities, which are becoming more common. Because the database objects of such a system include procedures and other objects for manipulating the data, an application developer may himself or herself develop some of the database objects, for example, by developing design-time artifacts that are deployed to the database as run-time database objects.
“Artifacts,” as the term is often used in the context of software development, may be understood to refer to data models, workflow diagrams, test matrices and plans, setup scripts, use cases, class diagrams, UML models, requirements, design documents or other documents, which help describe the function, architecture, and design of a software product (e.g., a database object). In some instances, the term database “artifacts” may be used to refer to the software product itself (e.g., the database object itself).
A database management system (DBMS) may provide access to data in the database. The DBMS may provide various functions that allow entry, storage, and retrieval of information and provide ways to manage how that information is organized in the database. The DBMS may be used to manage more than one database. Both the database and its DBMS may conform to the principles of a particular database model (e.g. hierarchical, relational, network, document, etc.). Often the term “database” is used to refer to both the database and the DBMS used to manipulate the database. Further, the term “database system” may be used to refer collectively to the database model, the database management system, and the database.
In some database systems, one or more of the database objects deployed in the database may be grouped or packaged in a so-called container (hereinafter—a database container or a run-time container). The database container may be a class, a data structure (or schema), or an abstract data type whose instances are collections of other objects. The database container may store objects in an organized way that follows specific access rules. For example, the database container may act as a sandbox to isolate database objects in the container from deployment and run-time errors of other database objects or containers in the database. Access to database container content may be controlled by database privileges, for example, by granting SELECT or EXECUTE privileges.
The present disclosure relates to importing or exporting a database with deployed database or run-time containers therein.